ここでは、FreeBSDにおける大きな特徴の一つ。
ports…FreeBSD ports Collectionの説明をしてみたいと思います。
portsとはインストールしたいソフトのportsディレクトリに移動して[make]と実行するだけで
「必要なソースをインターネットから取ってきて」「展開して」「パッチを当てて」「コンパイル」して、
さらにそのために必要なソフトがあれば、それもportsに従って「必要なソースを…(以下略)」
こういったものを、すべて自動化してくれる、非常に素晴らしい機能です。
これで問題がなければ、
最後に[make install]と入力すれば、そのソフトはインストールされます。
(ついでに言うと、最後に[make clean]を忘れないように…)
「ソフトがソースで公開されているなら、こんなもの使用しなくてもいいじゃないか」と
緋色は最初は思ってました。
しかし、実際に使用してみたら、
その素晴らしさに愕然として、認識を改めました。
−「FeeeBSDでは、極力portsを使用してソフトをインストールすべきである」と。
以下のURLにも、非常に詳しい情報が書かれています。
あわせて読むと、さらに勉強になると思います。
→http://www.jp.freebsd.org/www.FreeBSD.org/ja/ports/index.html
→http://www.jp.freebsd.org/www.FreeBSD.org/ja/handbook/ports.html
このportsという機能は、Linuxの「RPM」ソフトとほぼ同等のものだと考えていいと思います。
まず、「ports」と「packages」の違いを簡単に説明しておきます。
packagesとは、portsを使用して作成したコンパイル済みバイナリ等を
一つのパッケージとしてまとめたものであると言えます。(公式より)
FreeBSDにはパッケージ管理ツール[pkg_add][pke_delete][pkg_info]
…と言った非常に便利なものが数多く用意されています。
portsを使用してソフトをインストールした場合でも、
きちんとpackagesをインストールした時と同様、
このツールで情報を表示したり、削除することが可能です。
FreeBSD4.8RELESEのCD-ROM(1枚目の大半…そして2枚目)に収録されているのは、
(これだけの容量があるのは)実にこのPackages集だったりします。
しかし、このパッケージをCD-ROMから使う際、多少問題も起こります。
それは収録されているソフトが「FreeBSD4.8RELESE」が発表された時点のバージョンであるためです。
インターネットサービスで数多く使用されているソフト(例えばApacheやBIND、Squid)は、
セキュティの問題が起こるたびに、素早く修正されていきます。
そのために最新バージョンは常に進化しているのですが、
こういったCD-ROMを使用した際、その最新バージョンが収録されてない場合があります。
そこで使用するのがportsです。
これはパッケージとして発表されるより速く、最新バージョンのソフトに合わせる様に更新されていきます。
しかしながら、FreeBSD4.8RELESEのCD-ROMよりports集をインストールしたのであれば、
そのportsも、古いバージョンのままと言う事になります。
こんな時は[cvsup]を使用してports集を最新バージョンに更新したりします。
【これは−cvsupitでportsを最新に更新−で説明しています】
そこまでしなくても、最新portsを一つにまとめて圧縮されたものを入手したり、
必要なソフトの最新portsだけを取ってきて使用することも可能です。
この時、依存ソフトがportsになかったり、バージョンが古かったりした場合、
それも取ってこないといけないことになりますが…。
まず使用するソフト自体がFreeBSD用に最適化、様々な修正パッチ
(FreeBSD独自のものがある場合もあります)を当ててされてコンパイルされると言う事です。
どこまでFreeBSD用にコンパイルされるかはソフトによると思いますが、
たとえばApacheバージョン2の最新版である[httpd-2.0.47.tar.gz]を展開して
普通にインストールした時とportsを使用してインストールした時に、
[httpd]はどれだけ違うのでしょうか?
ちなみにapache2は[/usr/ports/www/apache2]です。
まずサイズを確認したところ、普通にインストールしたApacheの
[httpd]ファイルは1200500バイト…約1.2Mのサイズです。
つぎはportsを使用して、同じソースからインストールしてみました。
[httpd]のサイズは…371129バイト…約370キロでした!
驚いて[httpd -v]とバージョンを確認してみましたが、やはり同じバージョンでした(汗)。
もちろん動作は同じ…はずです。
モジュール化したりして、徹底的にFreeBSD用にチューンアップされていると思ってもいいでしょう。
どれだけ外されているかは、[httpd -l]を実行してみれば分かると思います。
そして、きちんと[/usr/local/]以下に使用目的に併せて
例えば設定ファイルが[/usr/local/etc/apache2]に置いたりしてくれます。
LOGファイルの場所も自動的に[/var/log]以下に設定されます。
その他にも、portsの場合、起動用シェルスクリプトが追加されます。
これはportsを使用した時の、非常に大きなメリットの一つです。
いちいちサーバー起動時に自動起動するように設定を書き加える必要はないわけです。
Apacheバージョン2の場合[/usr/local/etc/rc.d]以下に
[apache2.sh]スクリプトとして追加されます。
そして、自動起動を無効化したい場合、
[chmod -x apache2.sh]と実行フラグを外すなり(これはメッセージが出るのでお薦め出来ないかも)
[mv apache2.sh apache2.sh.stop]とリネームなりしてやれば、自動起動はしなくなります。
その他にも、FreeBSDのシステム環境に合わせて
[httpd.conf]が設定されていたり…メリットを上げたらキリがないです。
こういったソフトの最適化は、言ってみればプロの仕事です。
それをこんなに簡単に利用させてもらえるだけでも、素晴らしい事だと思います。
ちなみに、portsを使用したとき、ネット上よりダウンロードしたソースファイルは
[/usr/ports/distfiles]以下に保存されています。
portsを多用して、[/usr]パーティションの容量がやけに増えてしまった場合、
ここに沢山ファイルがあるのが原因の事が多いです。
きちんと削除しておきましょう。([make clean]も忘れないように…)
ちなみに、緋色はportsを使用する際、まず最初に
Server# mkdir /tmp/distfiles
Server# rm -r /usr/ports/distfiles
Server# ln -s /tmp/distfiles /usr/ports/distfiles |
として、/tmpパーティション以下に保存して使用してます。
…と言う事で、ソフトをインストールする場合、出来る限りportsを使用しましょう!
[一つ上に戻る] |